package com.tank.constant;

import javafx.util.Duration;

import java.util.HashSet;
import java.util.Set;

public class Config {

    public static final int CELL_SIZE = 24;

    public static final int TANK_WIDTH = 39;
    public static final int TANK_HEIGHT = 39;

    public static final int ENEMY_TYPE_COUNT = 11;

    public static final int EXPLOSION_FRAME_COUNT = 5;

    public static final int PLAYER_MAX_HEALTH = 5;

    public static final int MAX_TANK_LEVEL = 2;

    public static final int GROUND_CELL_COUNT = 28;
    public static final int BOARD_CELL_COUNT = 6;

    public static final int MAX_ENEMY_AMOUNT = 6;

    public static final int MAX_MAP_LEVEL = 1;

    public static final double PLAYER_SPEED = 180;

    public static final double BULLET_SPEED = 400;

    public static final Duration SHOOT_DELAY = Duration.seconds(0.66);

    public static final Duration EXPLODE_TIME = Duration.seconds(0.35);

    public static final Duration FREEZE_TIME = Duration.seconds(10);

    public static final Duration REINFORCE_TIME = Duration.seconds(10);

    public static final String ENEMY_AMOUNT = "enemyAmount";

    public static final String ENEMY_DESTROY_AMOUNT = "enemyDestroyAmount";

    public static final String MAP_LEVEL = "mapLevel";

    public static final String OWNER_TYPE = "ownerType";

    public static final String BULLET_LEVEL_KEY = "bulletLevel";

    public static final Set<GameType> SPAWN_BLOCKERS = new HashSet<>();

    {
        SPAWN_BLOCKERS.add(GameType.STONE);
        SPAWN_BLOCKERS.add(GameType.SEA);
        SPAWN_BLOCKERS.add(GameType.PLAYER);
        SPAWN_BLOCKERS.add(GameType.ENEMY);
    }
}
